package sg.edu.nus.iss.vmcs.controller;

import sg.edu.nus.iss.vmcs.util.VMCSException;

/**
 * 
 * @author Chomeaye
 *
 */

public interface CoinReceiverState {
	void startCoinReceiver(CoinReceiver coinReceiver)throws VMCSException;
	void stopCoinReceiver(CoinReceiver coinReceiver)throws VMCSException;
	void startReceive(CoinReceiver coinReceiver) throws VMCSException;
	void continueReceive(CoinReceiver coinReceiver) throws VMCSException;
	void receiveCoin(CoinReceiver coinReceiver, double totAmtInserted) throws VMCSException;
	void stopReceive(CoinReceiver coinReceiver) throws VMCSException;
	void refundCash(CoinReceiver coinReceiver) throws Exception;
	void terminateFault(CoinReceiver coinReceiver) throws Exception;

	boolean storeCash(CoinReceiver coinReceiver) throws VMCSException;
	
}
